//
//  JAGAdBaseAdapter.h
//  JAGatherAdDemo
//
//  Created by Yc on 2022/4/19.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "JAGPlacementModel.h"
#import "JAGAdAdapterDelegate.h"
#import "JAGHeader.h"

NS_ASSUME_NONNULL_BEGIN

@class JAGAdSupplier;

@interface JAGAdBaseAdapter : NSObject <JAGAdAdapterDelegate>

/// 广告位
@property (nonatomic, copy, readonly) NSString *placementID;

/// 各平台广告适配器
@property (nonatomic, strong, readonly) id adapter;

/// 落地页控制器(在一次广告周期中 不可更改, 不然会引起未知错误) 未设置则默认keyWindow.rootViewController
@property(nonatomic, weak) UIViewController *viewController;

/// 初始化方法
/// @param placementID 广告位
/// @param adType 广告类型
- (instancetype)initWithPlacementID:(NSString*)placementID
                             adType:(JAGAdsType)adType;
/// 加载广告
- (void)loadAd;

/// 展示广告
- (void)showAd;

/// 加载并展现
- (void)loadAndShowAd;

/// 拓展信息
/*
 可读取的key（存在内容的则会返回）：
 adunit_id：有容广告位id
 adunit_format：广告类型 1、原生；2、激励视频；3、横幅；4、插屏；5、开屏
 segment_id：流量组id
 ad_source_id：广告源id
 network_firm_id：//广告平台id 1、穿山甲；2、腾讯优量汇；3、Admob；4、快手；5、百度 6、Gromore
 network_placement_id：三方平台广告位id
 adsource_price：广告ecpm（单位分）
 custom：自定义参数
 示例：
 @{
 @"adunit_id":@"xxx",
 @"adunit_format":@(),
 @"segment_id":@"xxx"
 @"ad_source_id":@"xxx",
 @"network_firm_id":@(1),
 @"network_placement_id":@"xxx",
 @"adsource_price":@(1)
 @“custom”:@"xxx"
 }
 */
- (NSDictionary *)extraInfo;

/// 销毁当前请求对象
- (void)deallocAdapter;

@end

NS_ASSUME_NONNULL_END
